entry: Use regular drag highlight
authorMatthias Clasen <mclasen@redhat.com>
Thu, 3 Dec 2015 04:50:03 +0000 (23:50 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Thu, 3 Dec 2015 04:52:55 +0000 (23:52 -0500)
The entry code passes GTK_DEST_DEFAULT_HIGHLIGHT when setting
up the drop target, but that is ineffective because of the
custom drag_motion implementation. Instead, call
gtk_drag_[un]hightlight ourselves.

gtk/gtkentry.c

index 68704532e589f6a7b1a64c2d73d4767d2973e58b..f2fe2ddf4bac65952548a1ffe63af323a7b0d384 100644 (file)
@@ -2697,9 +2697,7 @@ gtk_entry_init (GtkEntry *entry)
   priv->progress_fraction = 0.0;
   priv->progress_pulse_fraction = 0.1;
 
-  gtk_drag_dest_set (GTK_WIDGET (entry),
-                     GTK_DEST_DEFAULT_HIGHLIGHT,
-                     NULL, 0,
+  gtk_drag_dest_set (GTK_WIDGET (entry), 0, NULL, 0,
                      GDK_ACTION_COPY | GDK_ACTION_MOVE);
   gtk_drag_dest_add_text_targets (GTK_WIDGET (entry));
 
@@ -10109,6 +10107,7 @@ gtk_entry_drag_leave (GtkWidget        *widget,
   GtkEntry *entry = GTK_ENTRY (widget);
   GtkEntryPrivate *priv = entry->priv;
 
+  gtk_drag_unhighlight (widget);
   priv->dnd_position = -1;
   gtk_widget_queue_draw (widget);
 }
@@ -10202,8 +10201,12 @@ gtk_entry_drag_motion (GtkWidget        *widget,
       suggested_action = 0;
       priv->dnd_position = -1;
     }
-  
+
   gdk_drag_status (context, suggested_action, time);
+  if (priv->dnd_position == -1)
+    gtk_drag_unhighlight (widget);
+  else
+    gtk_drag_highlight (widget);
 
   if (priv->dnd_position != old_position)
     gtk_widget_queue_draw (widget);